Data Replication is important in order to be able to ensure that data survives damage to an original data storage system. A complete copy of data stored in the original data storage system at a second location requires initial and periodic transferring of data or updated data stored in the original data storage system at a first location. However, storing and transferring large amounts of data is expensive both in storage capacity and bandwidth capacity. Also, often links between the original data storage system and the replica data storage system can be unreliable in that they may not always be able carry a known bandwidth of data at any time and, in fact, may at times not be able to carry any bandwidth. It would be beneficial to be able to replicate data efficiently in terms of both storage capacity, bandwidth capacity, and without relying on an reliable link between an original data storage system and a replica data storage system.